package com.ehome.poct.base.api.dto.device;

import com.ehome.core.entity.DTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 硬件升级DTO
 *
 * @author yjm
 * @Date 2021-11-17 15:18
 */
@Data
public class TestDeviceVersionUpdDTO extends DTO {
    /**
     * 设备类型
     */
    @ApiModelProperty("设备类型")
    @NotNull(message = "设备类型不能为空！")
    private String deviceType;
    /**
     * 版本号
     */
    @ApiModelProperty("版本号")
    private String version;
    
    @ApiModelProperty("版本Code")
    @NotNull(message = "版本Code不能为空！")
    private String versionCode;
    /**
     * 版本类型（1.迭代版本  2.功能版本   3.阶段版本）
     */
    @ApiModelProperty("版本类型（1.迭代版本  2.功能版本   3.阶段版本）")
    @NotNull(message = "版本类型不能为空！")
    private Integer versionType;
    /**
     * 包类型（0. 软件  1.硬件  2.固件）
     */
    @ApiModelProperty("包类型（0. 软件  1.系统  2.驱动）")
    @NotNull(message = "版本类型（软件/系统/驱动）不能为空！")
    private Integer packageType;
    
    /**
     * 版本状态（0.未发布  1.已发布  2.已撤销）
     */
    @ApiModelProperty("版本状态（0.未发布  1.已发布  2.已撤销）")
    private Integer versionStatus;
    /**
     * 版本更新描述
     */
    @ApiModelProperty("版本更新描述")
    private String description;
    /**
     * 预计花费时间（分钟）
     */
    @ApiModelProperty("预计花费时间（分钟）")
    private Integer estimatedTime;
    /**
     * 包下载地址
     */
    @ApiModelProperty("包下载地址")
    @NotNull(message = "包下载地址不能为空！")
    private String url;
    /**
     * 最低适配软件版本
     */
    @ApiModelProperty("最低适配软件版本")
    private String minSoftwareVersion;
    /**
     * 最低适配软件版本包的名称
     */
    @ApiModelProperty("最低适配软件版本包的名称")
    private String minPackageName;
    /**
     * 最低适配软件版本包的ID
     */
    @ApiModelProperty("最低适配软件版本包的ID")
    private String minPackageId;
    /**
     * 最低适配驱动版本
     */
    @ApiModelProperty("最低适配驱动版本")
    private String minDriverVersion;
    /**
     * 最低适配系统版本
     */
    @ApiModelProperty("最低适配系统版本")
    private String minFirmwareVersion;
    /**
     * 文件的唯一id
     */
    @ApiModelProperty("文件的唯一id")
    private String md5;
    /**
     * 文件大小
     */
    @ApiModelProperty("文件大小")
    private Integer size;
    /**
     * 安装包的类型  增量(incremental)/全量(full)
     */
    @ApiModelProperty("安装包的类型  增量(incremental)/全量(full)")
    private String romType;
    /**
     * 包的名称
     */
    @ApiModelProperty("包的名称")
    private String packageName;
    /**
     * 包的ID
     */
    @ApiModelProperty("包的ID")
    private String packageId;
    /**
     * 安装包 对应的设备  BA100 金标仪  BA200 血常规 BA300 荧光胶体金
     */
    @ApiModelProperty("安装包 对应的设备  BA100 金标仪  BA200 血常规 BA300 荧光胶体金")
    private String projectName;
    /**
     * 主板类型  瑞芯微/全志
     */
    @ApiModelProperty("主板类型  瑞芯微/全志")
    private String deviceMbType;
    /**
     * DateTime
     */
    @ApiModelProperty("DateTime")
    private LocalDateTime dateTime;
    
    /**
     * 安装包名称
     */
    @ApiModelProperty("安装包名称")
    private String fileName;
    
    @ApiModelProperty("仪器类型版本")
    private String deviceVersionType;
}